package fiuba.service;

//import fiuba.model.Menu;
import java.util.List;

import javax.jws.WebService;

import fiuba.dao.MenuDao;
import fiuba.model.LabelValue;
import fiuba.model.Menu;
import fiuba.model.MenuItem;

@WebService
public interface MenuManager extends UniversalManager {
	
    /**
     * Convenience method for testing - allows you to mock the DAO and set it on an interface.
     * @param menuDao the MenuDao implementation to use
     */
    void setMenuDao(MenuDao menuDao);

    /**
     * Retrieves a menu by menuId.  An exception is thrown if menu not found
     *
     * @param menuId the identifier for the menu
     * @return Menu
     */
    Menu getMenu(String menuId);


    /**
     * Retrieves a list of menu, filtering with parameters on a menu object
     * @return List
     */
    List<Menu> getMenus();

    /**
     * Saves a menu's information
     *
     * @param menu the menu's information
     * @throws MenuExistsException thrown when menu already exists
     * @return menu the updated menu object
     */
    Menu saveMenu(Menu menu) throws MenuExistsException;

    /**
     * Removes a menu from the database by their menuId
     *
     * @param menuId the menu's id
     */
    void removeMenu(String menuId);

    public List <LabelValue> getMenuItemsNotInMenu(Menu menu);
    
    public String printMenu (Menu menu);
}
